package com.sinog.biz.mapper.havexml;

import com.sinog.core.model.UploadAppendixFile;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @desc 文件上传mapper
 * @author -
 * @date -
 */
public interface UploadAppendixFileMapper {

    /**
     * 保存文件信息到mysql数据库中
     * @param uploadAppendixFile uploadAppendixFile
     * @return int
     */
    int insertFile(UploadAppendixFile uploadAppendixFile);

    /**
     * 根据id查询出文件信息返回到前台
     * @param pageStart pageStart
     * @param pageEnd pageEnd
     * @param map map
     * @return List<UploadAppendixFile>
     */
    List<UploadAppendixFile> selectFileById(Integer pageStart,Integer pageEnd,Map<String,Object> map);

    /**
     * 查询文件数
     * @param map map
     * @return int
     */
    int count(@Param("map") Map<String,Object> map);

    /**
     * 根据id priNum taskId查询上传文件数量
     * @param map map
     * @return int
     */
    int getCountById(@Param("map") Map<String,Object> map);

    /**
     * 根据id priNum taskId删除单个上传文件
     * @param map map
     * @return int
     */
    int deleteFileById(@Param("map") Map<String,Object> map);

    /**
     * 查找单个文件
     * @param uploadAppendixFile uploadAppendixFile
     * @return UploadAppendixFile
     */
    UploadAppendixFile findAppendixfileOne(UploadAppendixFile uploadAppendixFile);

    /**
     * 删除单个文件
     * @param uploadAppendixFile uploadAppendixFile
     */
    void removeAppendixFileOne(UploadAppendixFile uploadAppendixFile);

    /**
     * 根据prinum、id、taskid查询文件上传表
     * @param prinum prinum
     * @param id id
     * @param taskid taskid
     * @return UploadAppendixFile
     */
    UploadAppendixFile getScInfo(@Param("prinum") String prinum,@Param("id") String id,@Param("taskid") String taskid);

    /**
     * 根据prinum、taskid查询文件上传表
     * @param prinum prinum
     * @param taskid taskid
     * @return UploadAppendixFile
     */
    UploadAppendixFile getScInfoByPrinum(@Param("prinum") String prinum,@Param("taskid") String taskid);

    /**
     * 删除
     * @param uploadAppendixFile uploadAppendixFile
     * @return int
     */
    int removeAppendixFileOneBySingleId(UploadAppendixFile uploadAppendixFile);

    /**
     * 批量删除某一类文件
     * @param id id
     * @param priNum priNum
     * @param taskId taskId
     * @return int
     */
    int removeBatch(@Param("id") String id,@Param("priNum") String priNum,@Param("taskId") String taskId);

    /**
     * 司法所衔接选择失败后将之前上传的公安附件删除
     * @param priNum priNum
     * @param id id
     * @return int
     */
    int deleteUploadFile(@Param("priNum") String priNum,@Param("id") String id);

    /**
     * 根据priNum,taskId删除文件
     * @param uploadAppendixFile uploadAppendixFile
     */
    void removeAppendixFilByTaskId(UploadAppendixFile uploadAppendixFile);

    /**
     * 户籍迁出信息--查看--多媒体信息
     * @param priNum priNum
     * @param taskId taskId
     * @return List<Map < String,Object>>
     */
    List<Map<String,Object>> getDmtInfoViewByPriNum(@Param("priNum") String priNum,@Param("taskId") String taskId);

    /**
     * 描述
     * @param pp pp
     * @param taskId taskId
     * @param priNum priNum
     * @return List<Map<String,Object>>
     */
    List<Map<String,Object>> getUploadAppendixFile(
            @Param("pp") String pp,@Param("taskId") String taskId,@Param("priNum") String priNum);

    /**
     * 安帮工作资源管理 - 通知公告信息管理 - 通知公告信息管理 - 根据ID和taskId查询upload_appendix_file
     * @param id id
     * @return List<UploadAppendixFile>
     */
    List<UploadAppendixFile> getFilesListdata(String id);

    /**
     * 安帮工作资源管理 - 通知公告信息管理 - 通知公告信息管理 - 删除附件
     * @param id id
     * @return int
     */
    int deleteFjByid(String id);

    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 获取附件list数据
     * @param map map
     * @return List<UploadAppendixFile>
     */
    List<UploadAppendixFile> getFilesListdataZcwj(@Param("params") Map<String,Object> map);


    /**
     * 安帮工作资源管理 - 安帮资料信息管理 - 政策文件 - 删除附件
     * @param map map
     * @return int
     */
    int deleteFjByidZcwj(@Param("params") Map<String,Object> map);
}